namespace GeoWeb.Demo {
        using System;
        using GeoWeb.DataContext;
        
        
        /// <summary>
        /// 表名：GeoConfigTreeChildNodes 主键列：id
        /// </summary>
        [SerializableAttribute()]
        public partial class GeoConfigTreeChildNodes : Entity {
            
            protected Int32 _id;
            
            protected String _NodesGuid;
            
            protected String _NodeName;
            
            protected Int32 _HasCount;
            
            protected String _CountNumOneSql;
            
            protected String _CountNumTwoSql;
            
            protected String _CountNumThreeSql;
            
            protected String _CountNumFourSql;
            
            protected String _NodeAttriUrl;
            
            protected String _PageRightPartType;
            
            protected Int32? _PageSize;
            
            protected String _GridSqlQuery;
            
            protected String _GroupCondition;
            
            protected Int32? _IsTimeGroup;
            
            protected String _CountRecordSql;
            
            protected String _HidenColumn;
            
            protected String _ExtendColumn1;
            
            protected String _IndexMapSql;
            
            protected String _ButtonInfo;
            
            protected String _OrderCondition;
            
            protected String _OutPutSql;
            
            protected String _NoFlowUrl;
            
            protected String _NoFlowButtons;
            
            protected String _Sort;
            
            public Int32 id {
                get {
                    return this._id;
                }
                set {
                    this.OnPropertyValueChange(_.id, _id, value);
                    this._id = value;
                }
            }
            
            /// <summary>
            /// 上一级节点的Guid（）
            /// </summary>
            public String NodesGuid {
                get {
                    return this._NodesGuid;
                }
                set {
                    this.OnPropertyValueChange(_.NodesGuid, _NodesGuid, value);
                    this._NodesGuid = value;
                }
            }
            
            /// <summary>
            /// 节点名
            /// </summary>
            public String NodeName {
                get {
                    return this._NodeName;
                }
                set {
                    this.OnPropertyValueChange(_.NodeName, _NodeName, value);
                    this._NodeName = value;
                }
            }
            
            /// <summary>
            /// 是否有计数 0代表无计数，1代表有计数
            /// </summary>
            public Int32 HasCount {
                get {
                    return this._HasCount;
                }
                set {
                    this.OnPropertyValueChange(_.HasCount, _HasCount, value);
                    this._HasCount = value;
                }
            }
            
            /// <summary>
            /// 计数1的SQL语句
            /// </summary>
            public String CountNumOneSql {
                get {
                    return this._CountNumOneSql;
                }
                set {
                    this.OnPropertyValueChange(_.CountNumOneSql, _CountNumOneSql, value);
                    this._CountNumOneSql = value;
                }
            }
            
            /// <summary>
            /// 计数2的SQL语句
            /// </summary>
            public String CountNumTwoSql {
                get {
                    return this._CountNumTwoSql;
                }
                set {
                    this.OnPropertyValueChange(_.CountNumTwoSql, _CountNumTwoSql, value);
                    this._CountNumTwoSql = value;
                }
            }
            
            /// <summary>
            /// 计数3的SQL语句
            /// </summary>
            public String CountNumThreeSql {
                get {
                    return this._CountNumThreeSql;
                }
                set {
                    this.OnPropertyValueChange(_.CountNumThreeSql, _CountNumThreeSql, value);
                    this._CountNumThreeSql = value;
                }
            }
            
            /// <summary>
            /// 计数4的SQL语句
            /// </summary>
            public String CountNumFourSql {
                get {
                    return this._CountNumFourSql;
                }
                set {
                    this.OnPropertyValueChange(_.CountNumFourSql, _CountNumFourSql, value);
                    this._CountNumFourSql = value;
                }
            }
            
            /// <summary>
            /// 节点对应的URL属性值
            /// </summary>
            public String NodeAttriUrl {
                get {
                    return this._NodeAttriUrl;
                }
                set {
                    this.OnPropertyValueChange(_.NodeAttriUrl, _NodeAttriUrl, value);
                    this._NodeAttriUrl = value;
                }
            }
            
            /// <summary>
            /// 树右边控件类型（Grid或其它类型）
            /// </summary>
            public String PageRightPartType {
                get {
                    return this._PageRightPartType;
                }
                set {
                    this.OnPropertyValueChange(_.PageRightPartType, _PageRightPartType, value);
                    this._PageRightPartType = value;
                }
            }
            
            /// <summary>
            /// 美页最大记录数，如果PageRightPartType类型为Grid需添此字段。(grid用)
            /// </summary>
            public Int32? PageSize {
                get {
                    return this._PageSize;
                }
                set {
                    this.OnPropertyValueChange(_.PageSize, _PageSize, value);
                    this._PageSize = value;
                }
            }
            
            /// <summary>
            /// Grid查询SQL语句(grid用)
            /// </summary>
            public String GridSqlQuery {
                get {
                    return this._GridSqlQuery;
                }
                set {
                    this.OnPropertyValueChange(_.GridSqlQuery, _GridSqlQuery, value);
                    this._GridSqlQuery = value;
                }
            }
            
            /// <summary>
            /// 分组条件,填写分组字段名(grid用)
            /// </summary>
            public String GroupCondition {
                get {
                    return this._GroupCondition;
                }
                set {
                    this.OnPropertyValueChange(_.GroupCondition, _GroupCondition, value);
                    this._GroupCondition = value;
                }
            }
            
            /// <summary>
            /// 是否按时间分组（０不按时间分组，１按时间分组）(grid用)
            /// </summary>
            public Int32? IsTimeGroup {
                get {
                    return this._IsTimeGroup;
                }
                set {
                    this.OnPropertyValueChange(_.IsTimeGroup, _IsTimeGroup, value);
                    this._IsTimeGroup = value;
                }
            }
            
            /// <summary>
            /// 总记录的SQL语句(grid用)
            /// </summary>
            public String CountRecordSql {
                get {
                    return this._CountRecordSql;
                }
                set {
                    this.OnPropertyValueChange(_.CountRecordSql, _CountRecordSql, value);
                    this._CountRecordSql = value;
                }
            }
            
            /// <summary>
            /// (grid用)隐藏列，符号（|）分割多字段名
            /// </summary>
            public String HidenColumn {
                get {
                    return this._HidenColumn;
                }
                set {
                    this.OnPropertyValueChange(_.HidenColumn, _HidenColumn, value);
                    this._HidenColumn = value;
                }
            }
            
            /// <summary>
            /// 扩展字段,用于存放XML
            /// </summary>
            public String ExtendColumn1 {
                get {
                    return this._ExtendColumn1;
                }
                set {
                    this.OnPropertyValueChange(_.ExtendColumn1, _ExtendColumn1, value);
                    this._ExtendColumn1 = value;
                }
            }
            
            public String IndexMapSql {
                get {
                    return this._IndexMapSql;
                }
                set {
                    this.OnPropertyValueChange(_.IndexMapSql, _IndexMapSql, value);
                    this._IndexMapSql = value;
                }
            }
            
            public String ButtonInfo {
                get {
                    return this._ButtonInfo;
                }
                set {
                    this.OnPropertyValueChange(_.ButtonInfo, _ButtonInfo, value);
                    this._ButtonInfo = value;
                }
            }
            
            public String OrderCondition {
                get {
                    return this._OrderCondition;
                }
                set {
                    this.OnPropertyValueChange(_.OrderCondition, _OrderCondition, value);
                    this._OrderCondition = value;
                }
            }
            
            public String OutPutSql {
                get {
                    return this._OutPutSql;
                }
                set {
                    this.OnPropertyValueChange(_.OutPutSql, _OutPutSql, value);
                    this._OutPutSql = value;
                }
            }
            
            public String NoFlowUrl {
                get {
                    return this._NoFlowUrl;
                }
                set {
                    this.OnPropertyValueChange(_.NoFlowUrl, _NoFlowUrl, value);
                    this._NoFlowUrl = value;
                }
            }
            
            public String NoFlowButtons {
                get {
                    return this._NoFlowButtons;
                }
                set {
                    this.OnPropertyValueChange(_.NoFlowButtons, _NoFlowButtons, value);
                    this._NoFlowButtons = value;
                }
            }
            
            public String Sort {
                get {
                    return this._Sort;
                }
                set {
                    this.OnPropertyValueChange(_.Sort, _Sort, value);
                    this._Sort = value;
                }
            }
            
            /// <summary>
            /// 获取实体对应的表名
            /// </summary>
            protected override Table GetTable() {
                return new Table<GeoConfigTreeChildNodes>("GeoConfigTreeChildNodes");
            }
            
            /// <summary>
            /// 获取实体中的标识列
            /// </summary>
            protected override Field GetIdentityField() {
                return _.id;
            }
            
            /// <summary>
            /// 获取实体中的主键列
            /// </summary>
            protected override Field[] GetPrimaryKeyFields() {
                return new Field[] {
                        _.id};
            }
            
            /// <summary>
            /// 获取列信息
            /// </summary>
            protected override Field[] GetFields() {
                return new Field[] {
                        _.id,
                        _.NodesGuid,
                        _.NodeName,
                        _.HasCount,
                        _.CountNumOneSql,
                        _.CountNumTwoSql,
                        _.CountNumThreeSql,
                        _.CountNumFourSql,
                        _.NodeAttriUrl,
                        _.PageRightPartType,
                        _.PageSize,
                        _.GridSqlQuery,
                        _.GroupCondition,
                        _.IsTimeGroup,
                        _.CountRecordSql,
                        _.HidenColumn,
                        _.ExtendColumn1,
                        _.IndexMapSql,
                        _.ButtonInfo,
                        _.OrderCondition,
                        _.OutPutSql,
                        _.NoFlowUrl,
                        _.NoFlowButtons,
                        _.Sort};
            }
            
            /// <summary>
            /// 获取列数据
            /// </summary>
            protected override object[] GetValues() {
                return new object[] {
                        this._id,
                        this._NodesGuid,
                        this._NodeName,
                        this._HasCount,
                        this._CountNumOneSql,
                        this._CountNumTwoSql,
                        this._CountNumThreeSql,
                        this._CountNumFourSql,
                        this._NodeAttriUrl,
                        this._PageRightPartType,
                        this._PageSize,
                        this._GridSqlQuery,
                        this._GroupCondition,
                        this._IsTimeGroup,
                        this._CountRecordSql,
                        this._HidenColumn,
                        this._ExtendColumn1,
                        this._IndexMapSql,
                        this._ButtonInfo,
                        this._OrderCondition,
                        this._OutPutSql,
                        this._NoFlowUrl,
                        this._NoFlowButtons,
                        this._Sort};
            }
            
            /// <summary>
            /// 给当前实体赋值
            /// </summary>
            protected override void SetValues(IRowReader reader) {
                if ((false == reader.IsDBNull(_.id))) {
                    this._id = reader.GetInt32(_.id);
                }
                if ((false == reader.IsDBNull(_.NodesGuid))) {
                    this._NodesGuid = reader.GetString(_.NodesGuid);
                }
                if ((false == reader.IsDBNull(_.NodeName))) {
                    this._NodeName = reader.GetString(_.NodeName);
                }
                if ((false == reader.IsDBNull(_.HasCount))) {
                    this._HasCount = reader.GetInt32(_.HasCount);
                }
                if ((false == reader.IsDBNull(_.CountNumOneSql))) {
                    this._CountNumOneSql = reader.GetString(_.CountNumOneSql);
                }
                if ((false == reader.IsDBNull(_.CountNumTwoSql))) {
                    this._CountNumTwoSql = reader.GetString(_.CountNumTwoSql);
                }
                if ((false == reader.IsDBNull(_.CountNumThreeSql))) {
                    this._CountNumThreeSql = reader.GetString(_.CountNumThreeSql);
                }
                if ((false == reader.IsDBNull(_.CountNumFourSql))) {
                    this._CountNumFourSql = reader.GetString(_.CountNumFourSql);
                }
                if ((false == reader.IsDBNull(_.NodeAttriUrl))) {
                    this._NodeAttriUrl = reader.GetString(_.NodeAttriUrl);
                }
                if ((false == reader.IsDBNull(_.PageRightPartType))) {
                    this._PageRightPartType = reader.GetString(_.PageRightPartType);
                }
                if ((false == reader.IsDBNull(_.PageSize))) {
                    this._PageSize = reader.GetInt32(_.PageSize);
                }
                if ((false == reader.IsDBNull(_.GridSqlQuery))) {
                    this._GridSqlQuery = reader.GetString(_.GridSqlQuery);
                }
                if ((false == reader.IsDBNull(_.GroupCondition))) {
                    this._GroupCondition = reader.GetString(_.GroupCondition);
                }
                if ((false == reader.IsDBNull(_.IsTimeGroup))) {
                    this._IsTimeGroup = reader.GetInt32(_.IsTimeGroup);
                }
                if ((false == reader.IsDBNull(_.CountRecordSql))) {
                    this._CountRecordSql = reader.GetString(_.CountRecordSql);
                }
                if ((false == reader.IsDBNull(_.HidenColumn))) {
                    this._HidenColumn = reader.GetString(_.HidenColumn);
                }
                if ((false == reader.IsDBNull(_.ExtendColumn1))) {
                    this._ExtendColumn1 = reader.GetString(_.ExtendColumn1);
                }
                if ((false == reader.IsDBNull(_.IndexMapSql))) {
                    this._IndexMapSql = reader.GetString(_.IndexMapSql);
                }
                if ((false == reader.IsDBNull(_.ButtonInfo))) {
                    this._ButtonInfo = reader.GetString(_.ButtonInfo);
                }
                if ((false == reader.IsDBNull(_.OrderCondition))) {
                    this._OrderCondition = reader.GetString(_.OrderCondition);
                }
                if ((false == reader.IsDBNull(_.OutPutSql))) {
                    this._OutPutSql = reader.GetString(_.OutPutSql);
                }
                if ((false == reader.IsDBNull(_.NoFlowUrl))) {
                    this._NoFlowUrl = reader.GetString(_.NoFlowUrl);
                }
                if ((false == reader.IsDBNull(_.NoFlowButtons))) {
                    this._NoFlowButtons = reader.GetString(_.NoFlowButtons);
                }
                if ((false == reader.IsDBNull(_.Sort))) {
                    this._Sort = reader.GetString(_.Sort);
                }
            }
            
            public override int GetHashCode() {
                return base.GetHashCode();
            }
            
            public override bool Equals(object obj) {
                if ((obj == null)) {
                    return false;
                }
                if ((false == typeof(GeoConfigTreeChildNodes).IsAssignableFrom(obj.GetType()))) {
                    return false;
                }
                if ((((object)(this)) == ((object)(obj)))) {
                    return true;
                }
                return false;
            }
            
            public class _ {
                
                /// <summary>
                /// 表示选择所有列，与*等同
                /// </summary>
                public static AllField All = new AllField<GeoConfigTreeChildNodes>();
                
                /// <summary>
                /// 字段名：id - 数据类型：Int32
                /// </summary>
                public static Field id = new Field<GeoConfigTreeChildNodes>("id");
                
                /// <summary>
                /// 上一级节点的Guid（） - 字段名：NodesGuid - 数据类型：String
                /// </summary>
                public static Field NodesGuid = new Field<GeoConfigTreeChildNodes>("NodesGuid");
                
                /// <summary>
                /// 节点名 - 字段名：NodeName - 数据类型：String
                /// </summary>
                public static Field NodeName = new Field<GeoConfigTreeChildNodes>("NodeName");
                
                /// <summary>
                /// 是否有计数 0代表无计数，1代表有计数 - 字段名：HasCount - 数据类型：Int32
                /// </summary>
                public static Field HasCount = new Field<GeoConfigTreeChildNodes>("HasCount");
                
                /// <summary>
                /// 计数1的SQL语句 - 字段名：CountNumOneSql - 数据类型：String
                /// </summary>
                public static Field CountNumOneSql = new Field<GeoConfigTreeChildNodes>("CountNumOneSql");
                
                /// <summary>
                /// 计数2的SQL语句 - 字段名：CountNumTwoSql - 数据类型：String
                /// </summary>
                public static Field CountNumTwoSql = new Field<GeoConfigTreeChildNodes>("CountNumTwoSql");
                
                /// <summary>
                /// 计数3的SQL语句 - 字段名：CountNumThreeSql - 数据类型：String
                /// </summary>
                public static Field CountNumThreeSql = new Field<GeoConfigTreeChildNodes>("CountNumThreeSql");
                
                /// <summary>
                /// 计数4的SQL语句 - 字段名：CountNumFourSql - 数据类型：String
                /// </summary>
                public static Field CountNumFourSql = new Field<GeoConfigTreeChildNodes>("CountNumFourSql");
                
                /// <summary>
                /// 节点对应的URL属性值 - 字段名：NodeAttriUrl - 数据类型：String
                /// </summary>
                public static Field NodeAttriUrl = new Field<GeoConfigTreeChildNodes>("NodeAttriUrl");
                
                /// <summary>
                /// 树右边控件类型（Grid或其它类型） - 字段名：PageRightPartType - 数据类型：String
                /// </summary>
                public static Field PageRightPartType = new Field<GeoConfigTreeChildNodes>("PageRightPartType");
                
                /// <summary>
                /// 美页最大记录数，如果PageRightPartType类型为Grid需添此字段。(grid用) - 字段名：PageSize - 数据类型：Nullable`1
                /// </summary>
                public static Field PageSize = new Field<GeoConfigTreeChildNodes>("PageSize");
                
                /// <summary>
                /// Grid查询SQL语句(grid用) - 字段名：GridSqlQuery - 数据类型：String
                /// </summary>
                public static Field GridSqlQuery = new Field<GeoConfigTreeChildNodes>("GridSqlQuery");
                
                /// <summary>
                /// 分组条件,填写分组字段名(grid用) - 字段名：GroupCondition - 数据类型：String
                /// </summary>
                public static Field GroupCondition = new Field<GeoConfigTreeChildNodes>("GroupCondition");
                
                /// <summary>
                /// 是否按时间分组（０不按时间分组，１按时间分组）(grid用) - 字段名：IsTimeGroup - 数据类型：Nullable`1
                /// </summary>
                public static Field IsTimeGroup = new Field<GeoConfigTreeChildNodes>("IsTimeGroup");
                
                /// <summary>
                /// 总记录的SQL语句(grid用) - 字段名：CountRecordSql - 数据类型：String
                /// </summary>
                public static Field CountRecordSql = new Field<GeoConfigTreeChildNodes>("CountRecordSql");
                
                /// <summary>
                /// (grid用)隐藏列，符号（|）分割多字段名 - 字段名：HidenColumn - 数据类型：String
                /// </summary>
                public static Field HidenColumn = new Field<GeoConfigTreeChildNodes>("HidenColumn");
                
                /// <summary>
                /// 扩展字段,用于存放XML - 字段名：ExtendColumn1 - 数据类型：String
                /// </summary>
                public static Field ExtendColumn1 = new Field<GeoConfigTreeChildNodes>("ExtendColumn1");
                
                /// <summary>
                /// 字段名：IndexMapSql - 数据类型：String
                /// </summary>
                public static Field IndexMapSql = new Field<GeoConfigTreeChildNodes>("IndexMapSql");
                
                /// <summary>
                /// 字段名：ButtonInfo - 数据类型：String
                /// </summary>
                public static Field ButtonInfo = new Field<GeoConfigTreeChildNodes>("ButtonInfo");
                
                /// <summary>
                /// 字段名：OrderCondition - 数据类型：String
                /// </summary>
                public static Field OrderCondition = new Field<GeoConfigTreeChildNodes>("OrderCondition");
                
                /// <summary>
                /// 字段名：OutPutSql - 数据类型：String
                /// </summary>
                public static Field OutPutSql = new Field<GeoConfigTreeChildNodes>("OutPutSql");
                
                /// <summary>
                /// 字段名：NoFlowUrl - 数据类型：String
                /// </summary>
                public static Field NoFlowUrl = new Field<GeoConfigTreeChildNodes>("NoFlowUrl");
                
                /// <summary>
                /// 字段名：NoFlowButtons - 数据类型：String
                /// </summary>
                public static Field NoFlowButtons = new Field<GeoConfigTreeChildNodes>("NoFlowButtons");
                
                /// <summary>
                /// 字段名：Sort - 数据类型：String
                /// </summary>
                public static Field Sort = new Field<GeoConfigTreeChildNodes>("Sort");
            }
        }
    }
